Smooth Move is a PowerPC-native (PowerPC-only, in fact) extension that replaces the standard window moving code with a far cooler implementation. First off, it makes it possible to drag windows in realtime without erasing either the window contents or the desktop background. It also includes features to constrain window movement to horizontal/vertical axes, and a special precision movement mode where all moves are scaled down when you need that one-pixel adjustment.
However, the real beauty of Smooth Moove is its transparency effect. Provided you have the memory and the processor speed, Smooth Move will draw windows using transparency that can be adjusted while you’re actually moving them! Transparency can be disabled automatically depending on window size, screen depth and a modifier key to avoid sluggish performance.
How to install and use
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Place Smooth Move in your Control Panels folder and reboot. Next, double-click the Smooth Move control panel icon to set your preferences and you’re ready to go!
The modifier keys that Smooth Move uses are:
When clicking in a window titlebar:
Control — Enable or disable Smooth Move temporarily
Shift — Enable or disable transparency temporarily
Command — Don’t bring window to front
While moving a window:
Shift — Contrain window movement to horizontal and vertical axis
Command — Enable precision movement mode
Control & Option — Decrease and increase transparency level
Tips for better performance
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
For better transparency mixing speed, use a desktop pattern in a single color (not a dithered pattern). Running in 16-bit color depth produces much better visual results but requires more RAM for backing store.
Limitations
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Smooth Move supports single-monitor PowerMacs only. Implementing multiple-monitor window dragging with transparency is a very complicated task and would also require huge amounts of memory for backing store. I might be able to come up with a compromise where transparency only works on the main monitor and the standard outline is used on additional monitors.
Unfortunately Smooth Move is unable to intercept any window moving code that bypasses the DragWindow() system call. This will occur in applications using floating palettes because support for application-level palettes isn’t included in the system. These applications therefore need to use their own code which Smooth Move cannot patch.
Smooth Move tries to handle low-memory conditions as nice as possible, and it takes advantage of temporary memory for backing store. If there is no free memory it will revert to the old-fashion way of moving windows.
Shareware
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Smooth Move is shareware. Use the enclosed “Register” application to send your payment. More information can be found in the document “How to Register”. You are encouraged to share this software with your friends, but please make sure all files are included.
Distribution for profit (e.g. on shareware CD-ROMs) requires my permission. Please contact me so we can work something out.
Contacting the author
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Please don’t send Smooth Move questions to Kagi Shareware since they only handle payments. Instead contact me directly at jonasw@kagi.com or jonasw@lysator.liu.se. For the latest version of Smooth Move, or any other of my shareware programs, check out http://www.lysator.liu.se/~jonasw.
Version history
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
1.0a1. January 28, 1996 — First public release.
1.0b1. March 23, 1996 — Minor bug fixes. Recompiled using an updated compiler. Time bomb from alpha version removed.
1.0. April 15, 1996 — Fixed the last (?) crashing bug. Rewrote clipping code for improved handling of system floaters. Removed annoying flicker when moving a window to a position where it overlaps the starting position. Used newer ShowInitIcon code (thanks to François Pottier for this one). Help balloons are now hidden before moving a window to prevent incorrect screen redrawing.
Disclaimer
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
I make no warranties, either expressed or implied, with respect to this software. It is provided as is and no responsibility or liability is taken for any damage or loss of data caused by using this software.